Personal computers and workstations, referred to herein generally as workstations, utilize font files to produce displays of text on their monitor screens. The font files contain information which is required by a workstation's application software and operating system to formulate a map of each character to appear on the screen. The workstation assembles the character maps, to form a bit map of the entire monitor screen. The bit map includes, for each screen pixel, an indication if the pixel should be light, dark or shaded. The monitor thus forms characters and other symbols on the screen by producing patterns of light, dark and shaded pixels in accordance with the map.
The fonts dictate the overall appearance of the displayed characters and symbols. For example, the text or any part of it may be displayed in a Courier "typeface", which sets the design of the characters, in 14-point "size", which sets the dimensions of the characters and in an italics "typestyle", which sets the orientation of the characters.
The workstation's application software and operating system perform various manipulations to formulate the bit maps from the font information. This process is referred to as "rendering." A printer similarly uses the font information to produce character maps for printed copy.
The workstation and printer each have access to fonts which are included in resident application software and operating systems, and fonts which are available either directly over a connection to a font storage device or over a network. The fonts must, however, be compatible with the particular device's application software and operating system. A font which is available for screen display, for example, may not be compatible with the printer operating system, and thus, the printer can not print text which looks like the screen display.
If, for example, a user specifies that certain text appear italicized, the printer searches through a list of the available, compatible fonts to find one with the specified typeface, size and italic style. If such a font is accessible, the printer renders the text and prints it as italics. If the font is not accessible the printer notifies the user and/or prints the text in a default font, such as a font with the specified typeface and size and a different typestyle.
As a user requires or gains access to more fonts, font management becomes both more important and more difficult. The user must know which of the many fonts is currently available, whether a font can print or display special-purpose characters, whether the font is compatible with the printer, and so forth.
A known system which uses X windows as its operating system includes an X font server which manages access to and manipulation of the fonts and produces bit maps which are used by the system workstations to control the screen displays. The X font server thus relieves the workstation from the operations of finding appropriate fonts and rendering the maps for the screen. The operation of the X font server is discussed in The MIT X Consortium Standard, Version 1.0, entitled The X Font Service Protocol, X Version 11, Release 5. The Standard is incorporated herein by reference. The X font server will be discussed in more detail below and its operations contrasted with the operations of the invention, which is essentially an all-purpose font server which provides bit maps, outlines, and so forth, to network workstations and, also, to network printers.
Basically, the X font server receives from the X windows operating system either a font name or certain other information relating to a desired font, for example, average width of characters, typestyle, and so forth, and selects the appropriate font. The X font server then performs the manipulations necessary to provide character bit maps, including manipulations to produce features that would not otherwise be available, for example, larger characters, and supplies the bit maps to the workstation.
The X font server operates with fonts designed for screen display, only. It does not communicate with the printers. Accordingly, if a printout of a text file is desired, the workstation must send appropriate bit maps to the printer. Before the bit maps can be used to print the text, however, the workstation or the printer must further render them, that is, perform various manipulations, to produce bit maps which correspond to the resolution of the printer. Since the resolution of the printer is often many times greater than that of the workstation screens, the bit maps quickly become quite large and either the operations of the printer are slowed as it performs the rendering for various segments of the text and prints them, or it must devote extensive storage resources to the rendered bit maps.
Many printers now use, instead of bit maps, outlines which indicate the "boundaries" of the various characters. The printer then essentially fills in the outlines by darkening the pixels which fall within the boundaries. The use of outlines greatly reduces the amount of information which must be communicated to or stored in a printer in order to print a document. The X font server, however, does not produce outlines, since it works only with screen-display fonts. Accordingly, a workstation operating with the X font server cannot take advantage of these outlines.
What is needed is a font server which communicates with both network workstations and printers, and manages entirely the access to and the manipulation of the fonts to produce the maps and outlines in accordance with system licenses, and in formats which are compatible with the various network workstations and printers.